/*
 * Copyright© 2003-2019 浙江汇信科技有限公司, All Rights Reserved.
 */
package com.icinfo.cloud.provider.punish.service;

import com.icinfo.cloud.provider.punish.common.publicsecurityentrust.dto.PublicSecurityDocumentNumberRollbackDTO;
import com.icinfo.cloud.provider.punish.config.model.ConfigBusiParamDocumentInfo;
import com.icinfo.cloud.provider.punish.dto.*;
import com.icinfo.cloud.provider.punish.ucase.casemain.dto.CaseDocumentRecordDelRequest;
import com.icinfo.cloud.provider.punish.ucase.casemain.model.CaseDocumentRecord;
import com.icinfo.cloud.provider.punish.ucase.casemain.vo.CaseDocumentRecordVo;
import com.icinfo.cloud.provider.punish.vo.AppAskNoticeDocumentVo;
import com.icinfo.cloud.provider.punish.vo.CaseDocumentRecordSimpleVo;
import com.icinfo.framework.common.web.Result;
import com.icinfo.framework.core.service.BaseService;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;
import java.util.Map;


/**
 * 描述: 案件文书记录表-TRJ case_document_record 对应的Service接口.<br>
 *
 * @author framework generator
 * @date 2022年02月15日
 */
public interface ICaseDocumentRecordService extends BaseService {

    /**
     * 简易处罚接受捺印数据
     *
     * @param saveDto
     * @return
     */
    Map<String, Object> receiveSignFileOfSimple(SimpleCaseSignSaveDto saveDto);
    /**
     * 接收文书签字捺印数据
     * @param saveDto
     * @return
     */
    Map<String, Object> receiveSignFileOfCaseDoc(CaseDocumentRecordSignSaveDto saveDto);

    /**
     * 根据caseId获取关联文书
     * @param caseId
     * @return
     */
    List<CaseDocumentRecordSimpleVo> getDocumentRecordByCaseId(String caseId);

    /**
     * 描述： 生成文书及关联案件
     *
     * @author: zhengqiang
     * @date: 2022/6/29
     * @param: saveDto
     * @return {@link Map< String, Object>}
     **/
    Map<String, Object> saveDocInfoAndRelatedCase(DocSaveAndRelatedCaseDto saveDto);

    /**
     * 【V1.0.0】描述：根据唯一标识查询文书记录信息
     *
     * @param id 唯一标识
     * @return {@link CaseDocumentRecordVo} 文书记录信息
     * @author xiangyuyu
     * @date 2022-02-25 14:28
     */
    CaseDocumentRecordVo getCaseDocumentRecordInfo(String id);

    /**
     * 获取文书记录
     *
     * @author: zhengqiang
     * @date: 2022/5/18
     * @param: caseId
     * @param: documentCatalogCode
     * @param: partyId
     * @return {@link CaseDocumentRecord}
     **/
    CaseDocumentRecord getCaseDocumentRecord(String caseId, String documentCatalogCode, String partyId);
    /**
     * 文书删除
     * @author liyafeng
     * @date 2023/1/12
      * @param caseDocumentRecordDelRequest
     * @return {@link Result< String>}
     */
    Result<String> delCaseDocumentRecordInfo(CaseDocumentRecordDelRequest caseDocumentRecordDelRequest);

    /**
     * 描述：获取简易程序补正更正文号
     *
     * @param documentCatalogCode 文件目录的代码
     * @param caseId              用例id
     * @return {@link String }
     * @author shishengyao
     * @date 2023/02/27
     */

    String getCommonDocumentNumber(String caseId,String documentCatalogCode);

    /**
     * 重庆的重写
     *
     * @param dto
     * @return
     */
    Map<String, Object> receiveSignFileOfCaseDocChongQing(CaseDocumentRecordSignSaveDto dto);

    /**
     * 重庆重写 简易处罚
     *
     * @param saveDto
     * @return
     */
    Map<String, Object> receiveSignFileIdOfCaseDocChongQing(SimpleCaseSignFileIdSaveDto saveDto);

    List<AppAskNoticeDocumentVo> getAppAskNoticeDocumentDetail(AppAskNoticeDto appAskNoticeDto);

    /**
     * 获取公安委托文号
     */
    String getPublicSecurityDocumentNumber(String orgCode);

    /**
     * 公安委托文号回滚
     */
    void publicSecurityRollbackDocumentNumber(PublicSecurityDocumentNumberRollbackDTO dto);

    /**
     * 进行公安委托文号报警判断
     */
    void sendAlarm(PublicSecurityDocumentNumberRollbackDTO dto);

}
